home *** CD-ROM | disk | FTP | other *** search
- package java.net;
-
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.OutputStreamWriter;
- import java.util.BitSet;
-
- public class URLEncoder {
- static BitSet dontNeedEncoding = new BitSet(256);
-
- private URLEncoder() {
- }
-
- public static String encode(String var0) {
- ByteArrayOutputStream var1 = new ByteArrayOutputStream(var0.length());
- ByteArrayOutputStream var2 = new ByteArrayOutputStream(10);
- OutputStreamWriter var3 = new OutputStreamWriter(var2);
-
- for(int var4 = 0; var4 < var0.length(); ++var4) {
- char var5 = var0.charAt(var4);
- if (dontNeedEncoding.get(var5)) {
- if (var5 == ' ') {
- var5 = '+';
- }
-
- var1.write(var5);
- } else {
- try {
- var3.write(var5);
- var3.flush();
- } catch (IOException var8) {
- var2.reset();
- continue;
- }
-
- byte[] var6 = var2.toByteArray();
-
- for(int var7 = 0; var7 < var6.length; ++var7) {
- var1.write(37);
- var1.write(Character.forDigit(var6[var7] >> 4 & 15, 16));
- var1.write(Character.forDigit(var6[var7] & 15, 16));
- }
-
- var2.reset();
- }
- }
-
- return var1.toString();
- }
-
- static {
- for(int var0 = 97; var0 <= 122; ++var0) {
- dontNeedEncoding.set(var0);
- }
-
- for(int var1 = 65; var1 <= 90; ++var1) {
- dontNeedEncoding.set(var1);
- }
-
- for(int var2 = 48; var2 <= 57; ++var2) {
- dontNeedEncoding.set(var2);
- }
-
- dontNeedEncoding.set(32);
- dontNeedEncoding.set(45);
- dontNeedEncoding.set(95);
- dontNeedEncoding.set(46);
- dontNeedEncoding.set(42);
- }
- }
-